<?php

/**
 *
 *
 * 
 *    OSIFBOT
 *    Copyright (C) 2013  etchner jorge@devetch.com
 *
 *    This program is free software: you can  redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
class InterfazBD {

    private $mysqli;
    private $localhost;
    private $user;
    private $password;
    private $database;

    function __construct($localhost, $user, $password, $database) {
        $this->localhost = $localhost;
        $this->user = $user;
        $this->password = $password;
        $this->database = $database;
        $this->mysqli = null;
    }

    function conectar() {
        $this->mysqli = new mysqli($this->localhost, $this->user, $this->password, $this->database);
        if ($this->mysqli->connect_errno) {
            echo "Failed to connect to MySQL: (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error;
        }
    }

    function getPeticiones($dia, $mes, $anyo) {
        $dia = $this->mysqli->real_escape_string($dia);
        $mes = $this->mysqli->real_escape_string($mes);
        $anyo = $this->mysqli->real_escape_string($anyo);
        $query = "SELECT * FROM PETICION_USUARIO WHERE DIA = {$dia} AND MES = {$mes} AND ANYO = {$anyo}";
        $hay_datos = false;
        $res = $this->mysqli->query($query);
        
        if ($res) {
            
                while ($row = $res->fetch_assoc()) {
                    $hay_datos = true;
                    $filaResultados[0] = $row['DIA'];
                    $filaResultados[1] = $row['MES'];
                    $filaResultados[2] = $row['ANYO'];
                    $filaResultados[3] = $row['HORA'];
                    $filaResultados[4] = $row['MINUTO'];
                    $filaResultados[5] = $row['IP'];
                    $filaResultados[6] = $row['NICK'];
                    $filaResultados[7] = $row['REPARTIDA'];
                    $filaResultados[8] = $row['ID'];
                    $filaResultados[9] = $row['NICKREPARTO'];
                    

                    $matrizResultados[] = $filaResultados;
                }
                if($hay_datos)
                    return $matrizResultados;

            
        } else {
            echo "Fail: (" . $this->mysqli->errno . ") " . $this->mysqli->error;
            return -1;
        }
    }
    
    function getPedidosPendientes(){        
        $query = "SELECT * FROM PETICION_USUARIO WHERE REPARTIDA = 0";
        $hay_datos = false;
        $res = $this->mysqli->query($query);
        
        if ($res) {
            
                while ($row = $res->fetch_assoc()) {
                    $hay_datos = true;
                    $filaResultados[0] = $row['DIA'];
                    $filaResultados[1] = $row['MES'];
                    $filaResultados[2] = $row['ANYO'];
                    $filaResultados[3] = $row['HORA'];
                    $filaResultados[4] = $row['MINUTO'];
                    $filaResultados[5] = $row['IP'];
                    $filaResultados[6] = $row['NICK'];
                    $filaResultados[7] = $row['REPARTIDA'];
                    $filaResultados[8] = $row['ID'];
                    $filaResultados[9] = $row['NICKREPARTO'];
                    
                    $matrizResultados[] = $filaResultados;
                }
                if($hay_datos)
                    return $matrizResultados;

            
        } else {
            echo "Fail: (" . $this->mysqli->errno . ") " . $this->mysqli->error;
            return -1;
        }        
    }
    
    function modificarReparto($nick, $dia, $mes,$anyo,$es_repartido, $nickRepartidor){
        $dia = $this->mysqli->real_escape_string($dia);
        $mes = $this->mysqli->real_escape_string($mes);
        $anyo = $this->mysqli->real_escape_string($anyo);
        $es_repartido = $this->mysqli->real_escape_string($es_repartido);
        
        
        
        if(isset($nickRepartidor)){
                $query = "UPDATE PETICION SET REPARTIDA = {$es_repartido}, NICKREPARTO = '$nickRepartidor' WHERE DIA = {$dia} AND MES ={$mes} AND ANYO={$anyo} AND NICK='{$nick}'";
        }
            else{
                $query = "UPDATE PETICION SET REPARTIDA = {$es_repartido}, NICKREPARTO = NULL  WHERE DIA = {$dia} AND MES ={$mes} AND ANYO={$anyo} AND NICK='{$nick}'";
            }
    
        $res = $this->mysqli->query($query);
      
        if($res){
            return true;
        }
        return false;
    }
    
    function comprobarLogin($nick, $password){
        $nick = $this->mysqli->real_escape_string($nick);
        $password = $this->mysqli->real_escape_string($password);        
        $query = "SELECT * FROM ADMINISTRADOR WHERE NICK = '{$nick}' AND PASSWORD = '{$password}'";
        
        $result = $this->mysqli->query($query);
        
        if($result->num_rows != 0){
            return true;
        }
        return false;
    }
    
    function addAdmin($nick, $password){
        $nick = $this->mysqli->real_escape_string($nick);
        $password = $this->mysqli->real_escape_string($password);
        $query = "INSERT INTO ADMINISTRADOR VALUES('$nick','$password')";
        
        $res = $this->mysqli->query($query);
        if($res){
            return true;
        }
        return false;        
    }
    
    function delAdmin($nick){
        $nick = $this->mysqli->real_escape_string($nick);
            
        $query = "DELETE FROM ADMINISTRADOR WHERE NICK = '$nick'";
        $res = $this->mysqli->query($query);
        if($res){
            return true;
        }
        return false;        
    }    
    
    function getRepartosDiarios($dia, $mes, $anyo){
        $query = "SELECT `NICKREPARTO`, COUNT(*) AS `CANTIDAD`FROM `PETICION_USUARIO` WHERE `DIA` =  $dia AND `MES` = $mes AND `ANYO` = $anyo AND `REPARTIDA` = 1
            GROUP BY `NICKREPARTO ";
       
        $hay_datos = false;
        $res = $this->mysqli->query($query);
        if ($res) {
            
                while ($row = $res->fetch_assoc()) {
                    $hay_datos = true;
                    $filaResultados[0] = $row['NICKREPARTO'];
                    $filaResultados[1] = $row['CANTIDAD'];

                    $matrizResultados[] = $filaResultados;
                }
                if($hay_datos)
                    return $matrizResultados;

            
        } else {
            echo "Fail: (" . $this->mysqli->errno . ") " . $this->mysqli->error;
            return -1;
        }             
        
    }
    

    

}

?>
